home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
UTILITY
/
FSULTRA1.ARJ
/
MAKEFILE
< prev
next >
Wrap
Text File
|
1992-06-01
|
15KB
|
422 lines
# This is the makefile that I used to create the objects and tpu's
# on my machine. The location (or even existence) of compilers may
# be different in your configuration. Modify what is needed.
#
# Typing make will create all .obj and .tpu files
# Typing make demo will run all of them and compare the
# output with a standard. The result
# is saved in a file called DIF.
# Typing make time will time the program.
#
VER =105
UNZIP = \util\pkware1.10\pkunzip
TPC = tpc
ASM = c:\tasm\tasm -n
C = tcc
FORT = f77l
LINK = link77
FOR2 = \fortran\qfort
LNK2 = \fortran\qfortlnk
ZTIMER = ..\ztimer11.zip
HDR = comment.0+header+comment.1
# This is the list of all the objects that are to be created by the
# makefile. Remove from here any objects which you don't want, or
# whose compiler you don't have.
all: c tp lahey fort
######## TURBO-C
c: ultra_ct.obj ultra_cs.obj ultra_cm.obj \
ultra_cc.obj ultra_cl.obj ultra_ch.obj \
ultrx_ct.obj ultrx_cs.obj ultrx_cm.obj \
ultrx_cc.obj ultrx_cl.obj ultrx_ch.obj \
ultrf_ct.obj ultrf_cs.obj ultrf_cm.obj \
ultrf_cc.obj ultrf_cl.obj ultrf_ch.obj \
ultfx_ct.obj ultfx_cs.obj ultfx_cm.obj \
ultfx_cc.obj ultfx_cl.obj ultfx_ch.obj
ultra_ct.obj: ultra_c.asm ultracod.inc ultradat.inc
$(ASM) -dm=tiny -mx ultra_c,ultra_ct;
ultra_cs.obj: ultra_c.asm ultracod.inc ultradat.inc
$(ASM) -dm=small -mx ultra_c,ultra_cs;
ultra_cc.obj: ultra_c.asm ultracod.inc ultradat.inc
$(ASM) -dm=compact -mx ultra_c,ultra_cc;
ultra_cm.obj: ultra_c.asm ultracod.inc ultradat.inc
$(ASM) -dm=medium -mx ultra_c,ultra_cm;
ultra_cl.obj: ultra_c.asm ultracod.inc ultradat.inc
$(ASM) -dm=large -mx ultra_c,ultra_cl;
ultra_ch.obj: ultra_c.asm ultracod.inc ultradat.inc
$(ASM) -dm=huge -mx ultra_c,ultra_ch;
ultrx_ct.obj: ultrx_c.asm ultrxcod.inc ultradat.inc
$(ASM) -dm=tiny -mx ultrx_c,ultrx_ct;
ultrx_cs.obj: ultrx_c.asm ultrxcod.inc ultradat.inc
$(ASM) -dm=small -mx ultrx_c,ultrx_cs;
ultrx_cc.obj: ultrx_c.asm ultrxcod.inc ultradat.inc
$(ASM) -dm=compact -mx ultrx_c,ultrx_cc;
ultrx_cm.obj: ultrx_c.asm ultrxcod.inc ultradat.inc
$(ASM) -dm=medium -mx ultrx_c,ultrx_cm;
ultrx_cl.obj: ultrx_c.asm ultrxcod.inc ultradat.inc
$(ASM) -dm=large -mx ultrx_c,ultrx_cl;
ultrx_ch.obj: ultrx_c.asm ultrxcod.inc ultradat.inc
$(ASM) -dm=huge -mx ultrx_c,ultrx_ch;
ultrf_ct.obj: ultra_c.asm ultracod.inc ultradat.inc
$(ASM) -dfast -dm=tiny -mx ultra_c,ultrf_ct;
ultrf_cs.obj: ultra_c.asm ultracod.inc ultradat.inc
$(ASM) -dfast -dm=small -mx ultra_c,ultrf_cs;
ultrf_cc.obj: ultra_c.asm ultracod.inc ultradat.inc
$(ASM) -dfast -dm=compact -mx ultra_c,ultrf_cc;
ultrf_cm.obj: ultra_c.asm ultracod.inc ultradat.inc
$(ASM) -dfast -dm=medium -mx ultra_c,ultrf_cm;
ultrf_cl.obj: ultra_c.asm ultracod.inc ultradat.inc
$(ASM) -dfast -dm=large -mx ultra_c,ultrf_cl;
ultrf_ch.obj: ultra_c.asm ultracod.inc ultradat.inc
$(ASM) -dfast -dm=huge -mx ultra_c,ultrf_ch;
ultfx_ct.obj: ultrx_c.asm ultrxcod.inc ultradat.inc
$(ASM) -dfast -dm=tiny -mx ultrx_c,ultfx_ct;
ultfx_cs.obj: ultrx_c.asm ultrxcod.inc ultradat.inc
$(ASM) -dfast -dm=small -mx ultrx_c,ultfx_cs;
ultfx_cc.obj: ultrx_c.asm ultrxcod.inc ultradat.inc
$(ASM) -dfast -dm=compact -mx ultrx_c,ultfx_cc;
ultfx_cm.obj: ultrx_c.asm ultrxcod.inc ultradat.inc
$(ASM) -dfast -dm=medium -mx ultrx_c,ultfx_cm;
ultfx_cl.obj: ultrx_c.asm ultrxcod.inc ultradat.inc
$(ASM) -dfast -dm=large -mx ultrx_c,ultfx_cl;
ultfx_ch.obj: ultrx_c.asm ultrxcod.inc ultradat.inc
$(ASM) -dfast -dm=huge -mx ultrx_c,ultfx_ch;
######## TURBO PASCAL
tp: ultra.tpu ultrax.tpu ultraf.tpu ultrafx.tpu
ultra.tpu: ultratpu.pas ultra_tp.asm ultracod.inc ultradat.inc
copy ultratpu.pas ultra.pas
$(ASM) ultra_tp;
$(TPC) ultra.pas
del ultra.pas
ultrax.tpu: ultratpu.pas ultrx_tp.asm ultrxcod.inc ultradat.inc
copy ultratpu.pas ultrax.pas
$(ASM) ultrx_tp;
$(TPC) -Dx ultrax.pas
del ultrax.pas
ultraf.tpu: ultratpu.pas ultra_tp.asm ultracod.inc ultradat.inc
copy ultratpu.pas ultraf.pas
$(ASM) -dfast ultra_tp,ultrf_tp;
$(TPC) -df ultraf.pas
del ultraf.pas
ultrafx.tpu: ultratpu.pas ultrx_tp.asm ultrxcod.inc ultradat.inc
copy ultratpu.pas ultrafx.pas
$(ASM) -dfast ultrx_tp,ultfx_tp;
$(TPC) -Dfx ultrafx.pas
del ultrafx.pas
######## LAHEY FORTRAN
lahey: ultra_lh.obj ultrx_lh.obj ultrf_lh.obj ultfx_lh.obj
ultra_lh.obj: ultra_lh.asm ultracod.inc ultradat.inc
$(ASM) ultra_lh;
ultrx_lh.obj: ultrx_lh.asm ultrxcod.inc ultradat.inc
$(ASM) ultrx_lh;
ultrf_lh.obj: ultra_lh.asm ultracod.inc ultradat.inc
$(ASM) -dfast ultra_lh,ultrf_lh;
ultfx_lh.obj: ultrx_lh.asm ultrxcod.inc ultradat.inc
$(ASM) -dfast ultrx_lh,ultfx_lh;
######## IBM FORTRAN/2
fort: ultra_fr.obj ultrf_fr.obj
echo 80386 versions don't seem to work with IBM Fortran/2
ultra_fr.obj: ultra_fr.asm ultracod.inc ultradat.inc
$(ASM) ultra_fr;
ultrx_fr.obj: ultrx_fr.asm ultrxcod.inc ultradat.inc
echo 80386 version doesn't seem to work with IBM Fortran/2
# $(ASM) ultrx_fr;
ultrf_fr.obj: ultra_fr.asm ultracod.inc ultradat.inc
$(ASM) -dfast ultra_fr,ultrf_fr;
ultfx_fr.obj: ultrx_fr.asm ultrxcod.inc ultradat.inc
echo 80386 version doesn't seem to work with IBM Fortran/2
# $(ASM) -dfast ultrx_fr,ultfx_fr;
# The following is a test sequence to run the demo program and
# compare its output with the standard output. The last few digits
# might vary in floating point due to roundoff.
demo: democ demotp demolahey demofort
demo.out: demo.c ultra.c
$(C) -ms demo.c ultra.c
demo >demo.out
demof.out: demo.c ultra.c
$(C) -Dfast -edemof -ms demo.c ultra.c
demof >demof.out
dif.out:
if not exist dif.out type dif.out >dif.out
democ: dem_ct.out dem_cs.out dem_cc.out dem_cm.out dem_cl.out dem_ch.out \
demx_ct.out demx_cs.out demx_cc.out demx_cm.out demx_cl.out demx_ch.out \
demf_ct.out demf_cs.out demf_cc.out demf_cm.out demf_cl.out demf_ch.out \
demfx_ct.out demfx_cs.out demfx_cc.out demfx_cm.out demfx_cl.out demfx_ch.out
dem_ct.out: demo.c ultra_ct.obj demo.out dif.out
$(C) -edem_ct -mt demo.c ultra_ct.obj
dem_ct >dem_ct.out
fc demo.out dem_ct.out >>dif.out
dem_cs.out: demo.c ultra_cs.obj demo.out dif.out
$(C) -edem_cs -ms demo.c ultra_cs.obj
dem_cs >dem_cs.out
fc demo.out dem_cs.out >>dif.out
dem_cc.out: demo.c ultra_cc.obj demo.out dif.out
$(C) -edem_cc -mc demo.c ultra_cc.obj
dem_cc >dem_cc.out
fc demo.out dem_cc.out >>dif.out
dem_cm.out: demo.c ultra_cm.obj demo.out dif.out
$(C) -edem_cm -mm demo.c ultra_cm.obj
dem_cm >dem_cm.out
fc demo.out dem_cm.out >>dif.out
dem_cl.out: demo.c ultra_cl.obj demo.out dif.out
$(C) -edem_cl -ml demo.c ultra_cl.obj
dem_cl >dem_cl.out
fc demo.out dem_cl.out >>dif.out
dem_ch.out: demo.c ultra_ch.obj demo.out dif.out
$(C) -edem_ch -mh demo.c ultra_ch.obj
dem_ch >dem_ch.out
fc demo.out dem_ch.out >>dif.out
demx_ct.out: demo.c ultrx_ct.obj demo.out dif.out
$(C) -edemx_ct -mt demo.c ultrx_ct.obj
demx_ct >demx_ct.out
fc demo.out demx_ct.out >>dif.out
demx_cs.out: demo.c ultrx_cs.obj demo.out dif.out
$(C) -edemx_cs -ms demo.c ultrx_cs.obj
demx_cs >demx_cs.out
fc demo.out demx_cs.out >>dif.out
demx_cc.out: demo.c ultrx_cc.obj demo.out dif.out
$(C) -edemx_cc -mc demo.c ultrx_cc.obj
demx_cc >demx_cc.out
fc demo.out demx_cc.out >>dif.out
demx_cm.out: demo.c ultrx_cm.obj demo.out dif.out
$(C) -edemx_cm -mm demo.c ultrx_cm.obj
demx_cm >demx_cm.out
fc demo.out demx_cm.out >>dif.out
demx_cl.out: demo.c ultrx_cl.obj demo.out dif.out
$(C) -edemx_cl -ml demo.c ultrx_cl.obj
demx_cl >demx_cl.out
fc demo.out demx_cl.out >>dif.out
demx_ch.out: demo.c ultrx_ch.obj demo.out dif.out
$(C) -edemx_ch -mh demo.c ultrx_ch.obj
demx_ch >demx_ch.out
fc demo.out demx_ch.out >>dif.out
demf_ct.out: demo.c ultrf_ct.obj demof.out dif.out
$(C) -edemf_ct -mt demo.c ultrf_ct.obj
demf_ct >demf_ct.out
fc demof.out demf_ct.out >>dif.out
demf_cs.out: demo.c ultrf_cs.obj demof.out dif.out
$(C) -edemf_cs -ms demo.c ultrf_cs.obj
demf_cs >demf_cs.out
fc demof.out demf_cs.out >>dif.out
demf_cc.out: demo.c ultrf_cc.obj demof.out dif.out
$(C) -edemf_cc -mc demo.c ultrf_cc.obj
demf_cc >demf_cc.out
fc demof.out demf_cc.out >>dif.out
demf_cm.out: demo.c ultrf_cm.obj demof.out dif.out
$(C) -edemf_cm -mm demo.c ultrf_cm.obj
demf_cm >demf_cm.out
fc demof.out demf_cm.out >>dif.out
demf_cl.out: demo.c ultrf_cl.obj demof.out dif.out
$(C) -edemf_cl -ml demo.c ultrf_cl.obj
demf_cl >demf_cl.out
fc demof.out demf_cl.out >>dif.out
demf_ch.out: demo.c ultrf_ch.obj demof.out dif.out
$(C) -edemf_ch -mh demo.c ultrf_ch.obj
demf_ch >demf_ch.out
fc demof.out demf_ch.out >>dif.out
demfx_ct.out: demo.c ultfx_ct.obj demof.out dif.out
$(C) -edemfx_ct -mt demo.c ultfx_ct.obj
demfx_ct >demfx_ct.out
fc demof.out demfx_ct.out >>dif.out
demfx_cs.out: demo.c ultfx_cs.obj demof.out dif.out
$(C) -edemfx_cs -ms demo.c ultfx_cs.obj
demfx_cs >demfx_cs.out
fc demof.out demfx_cs.out >>dif.out
demfx_cc.out: demo.c ultfx_cc.obj demof.out dif.out
$(C) -edemfx_cc -mc demo.c ultfx_cc.obj
demfx_cc >demfx_cc.out
fc demof.out demfx_cc.out >>dif.out
demfx_cm.out: demo.c ultfx_cm.obj demof.out dif.out
$(C) -edemfx_cm -mm demo.c ultfx_cm.obj
demfx_cm >demfx_cm.out
fc demof.out demfx_cm.out >>dif.out
demfx_cl.out: demo.c ultfx_cl.obj demof.out dif.out
$(C) -edemfx_cl -ml demo.c ultfx_cl.obj
demfx_cl >demfx_cl.out
fc demof.out demfx_cl.out >>dif.out
demfx_ch.out: demo.c ultfx_ch.obj demof.out dif.out
$(C) -edemfx_ch -mh demo.c ultfx_ch.obj
demfx_ch >demfx_ch.out
fc demof.out demfx_ch.out >>dif.out
demotp: dem_tp.out demx_tp.out demf_tp.out demfx_tp.out
dem_tp.out: demo.pas ultra.tpu demo.out dif.out
$(TPC) demo.pas
demo >dem_tp.out
fc demo.out dem_tp.out >>dif.out
demx_tp.out: demo.pas ultrax.tpu demo.out dif.out
$(TPC) -Dx demo.pas
demo >demx_tp.out
fc demo.out demx_tp.out >>dif.out
demf_tp.out: demo.pas ultraf.tpu demof.out dif.out
$(TPC) -Df demo.pas
demo >demf_tp.out
fc demof.out demf_tp.out >>dif.out
demfx_tp.out: demo.pas ultrafx.tpu demof.out dif.out
$(TPC) -Dfx demo.pas
demo >demfx_tp.out
fc demof.out demfx_tp.out >>dif.out
demolahey: dem_lh.out demx_lh.out demf_lh.out demfx_lh.out
dem_lh.out: demo.for ultra_lh.obj demo.out dif.out
$(FORT) demo
$(LINK) demo+ultra_lh.obj,dem_lh;
dem_lh >dem_lh.out
fc demo.out dem_lh.out >>dif.out
demx_lh.out: demo.for ultrx_lh.obj demo.out dif.out
$(FORT) demo
$(LINK) demo+ultrx_lh.obj,demx_lh;
demx_lh >demx_lh.out
fc demo.out demx_lh.out >>dif.out
demf_lh.out: demo.for ultrf_lh.obj demof.out dif.out
$(FORT) demo
$(LINK) demo+ultrf_lh.obj,demf_lh;
demf_lh >demf_lh.out
fc demof.out demf_lh.out >>dif.out
demfx_lh.out: demo.for ultfx_lh.obj demof.out dif.out
$(FORT) demo
$(LINK) demo+ultfx_lh.obj,demfx_lh;
demfx_lh >demfx_lh.out
fc demof.out demfx_lh.out >>dif.out
demofort: dem_fr.out demf_fr.out
dem_fr.out: demo.for ultra_fr.obj demo.out dif.out
$(FOR2) demo
$(LNK2) demo+ultra_fr.obj,dem_fr;
dem_fr >dem_fr.out
fc demo.out dem_fr.out >>dif.out
demx_fr.out: demo.for ultrx_fr.obj demo.out dif.out
echo 80386 versions don't seem to work with IBM Fortran/2
# $(FOR2) demo
# $(LNK2) demo+ultrx_fr.obj,demx_fr;
# demx_fr >demx_fr.out
# fc demo.out demx_fr.out >>dif.out
demf_fr.out: demo.for ultrf_fr.obj demof.out dif.out
$(FOR2) demo
$(LNK2) demo+ultrf_fr.obj,demf_fr;
demf_fr >demf_fr.out
fc demof.out demf_fr.out >>dif.out
demfx_fr.out: demo.for ultfx_fr.obj demof.out dif.out
echo 80386 versions don't seem to work with IBM Fortran/2
# $(FOR2) demo
# $(LNK2) demo+ultfx_fr.obj,demfx_fr;
# demfx_fr >demfx_fr.out
# fc demof.out demfx_fr.out >>dif.out
# The timings can be obtained by running the following program.
# Currently it runs the 32-bit small model C, but other models
# could be run by changing the following lines:
debug.h: timer
ztimer.h: timer
ztimer_s.lib: timer
timer:
$(UNZIP) -n $(ZTIMER) debug.h ztimer.h ztimer_s.lib
time: debug.h ztimer.h ztimer_s.lib \
ultra_cs.obj ultrx_cs.obj ultrf_cs.obj ultfx_cs.obj
$(C) -ms timings.c ultrx_cs.obj ztimer_s.lib
echo 80386/80486 full version >timings.out
timings >>timings.out
$(C) -ms timings.c ultra_cs.obj ztimer_s.lib
echo 8086/80286 full version >>timings.out
timings >>timings.out
$(C) -ms timings.c ultra.c ztimer_s.lib
echo C - subroutines
timings >>timings.out
$(C) -ms timings.c ultfx_cs.obj ztimer_s.lib
echo 80386/80486 fast version >>timings.out
timings >>timings.out
$(C) -ms timings.c ultrf_cs.obj ztimer_s.lib
echo 8086/80286 fast version >>timings.out
timings >>timings.out
$(C) -ms -Dfast timings.c ultra.c ztimer_s.lib
echo C - fast subroutines
timings >>timings.out
clean:
del *.out
del *.obj
del *.tpu
del model.mac
del dif
del *.exe
del *.sld
del *.map
del ztim*.*
del debug.h
ship: all
md ship
md ship\objects
copy *.obj ship\objects
copy *.tpu ship\objects
copy makefile ship
copy header+ultra.doc ship\ultra.doc
copy header+readme ship\readme
copy header.f+demo.for ship\demo.for
echo comment ! >comment.0
echo ! >comment.1
copy $(HDR)+ultra_c.asm ship\ultra_c.asm
copy $(HDR)+ultra_tp.asm ship\ultra_tp.asm
copy $(HDR)+ultra_fr.asm ship\ultra_fr.asm
copy $(HDR)+ultra_lh.asm ship\ultra_lh.asm
copy $(HDR)+ultracod.inc ship\ultracod.inc
copy $(HDR)+ultradat.inc ship\ultradat.inc
copy $(HDR)+ultrx_c.asm ship\ultrx_c.asm
copy $(HDR)+ultrx_tp.asm ship\ultrx_tp.asm
copy $(HDR)+ultrx_fr.asm ship\ultrx_fr.asm
copy $(HDR)+ultrx_lh.asm ship\ultrx_lh.asm
copy $(HDR)+ultrxcod.inc ship\ultrxcod.inc
echo /* >comment.0
echo */ >comment.1
copy $(HDR)+timings.c ship\timings.c
copy $(HDR)+ultra.c ship\ultra.c
copy $(HDR)+ultra.h ship\ultra.h
copy $(HDR)+demo.c ship\demo.c
copy $(HDR)+ultramac.c ship\ultramac.c
echo { >comment.0
echo } >comment.1
copy $(HDR)+ultratpu.pas ship\ultratpu.pas
copy $(HDR)+demo.pas ship\demo.pas
del comment.*
zip -rp ultra$(VER) ship\*.*